package com.life.ai.server.modules.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.life.ai.server.common.domain.PageQuery;
import com.life.ai.server.modules.system.entity.SysMenu;
import com.life.ai.server.modules.system.model.vo.SysMenuNodeVO;

import java.util.List;

/**
 * <p>
 * 菜单权限 服务类
 * </p>
 *
 * @author kylewka
 * @since 2024-06-11
 */
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 分页查询
     *
     * @param pageQuery 分页参数
     * @param sysMenu 查询条件
     * @return Page<SysMenu>
     */
    Page<SysMenu> selectMenuPage(PageQuery pageQuery, SysMenu sysMenu);

    /**
     * 查询系统菜单列表
     *
     * @param menu 菜单信息
     * @return 菜单列表
     */
    List<SysMenu> selectMenuList(SysMenu menu);

    /**
     * 查询系统菜单列表（树形）
     *
     * @param menu 菜单信息
     * @return 菜单列表
     */
    List<SysMenuNodeVO> selectMenuTree(SysMenu menu);


    /**
     * 新增菜单
     *
     * @param menu 菜单信息
     */
    void addMenu(SysMenu menu);


    /**
     * 编辑菜单
     *
     * @param menu 菜单信息
     */
    void updateMenu(SysMenu menu);

    /**
     * 删除菜单管理信息
     *
     * @param id 菜单ID
     */
    void deleteMenuById(Long id);

}
